[Update] การใช้งาน Amazon Data Firehose ร่วมกับ Amazon S3

[Update] การใช้งาน Amazon Data Firehose ร่วมกับ Amazon S3

บทความนี้จะมาสร้างตัวอย่างการใช้งาน Amazon Data Firehose โดยจะเป็นการใช้งานร่วมกับ Amazon S3 ครับ สำหรับคนที่สนใจการใช้งาน Amazon Data Firehose หรือกำลังเริ่มต้นศึกษาก็สามารถดูเนื้อหาจากบทความนี้เป็นตัวอย่างได้ครับ

สิ่งที่ต้องมี

※มี S3 Bucket ที่สร้างไว้สำหรับใช้เป็นพื้นที่ในการเก็บข้อมูลเพื่อนำมาแสดงใน Amazon Data Firehose เตรียมไว้แล้ว

ครั้งนี้จะใช้ชื่อ S3 Bucket ดังนี้
・Bucket name: tinnakorn-test-s3 (ครั้งนี้สร้างไว้ใน Region Singapore)

สามารถดูตัวอย่างได้ที่ลิงก์ด้านล่างนี้
การสร้าง Buckets ใน Amazon S3

สร้าง Amazon Data Firehose

ครั้งนี้จะดำเนินการใน Region Singapore

ให้ค้นหาและคลิก Amazon Data Firehose
service_firehose-search

แล้วคลิก Create Firehose stream
service_amazon_data_firehose-button

แล้วจะตั้งค่าดังนี้
Choose source and destination
・Source: Direct PUT
・Destination: Amazon S3 (หลังจากเลือกนี้แล้ว หัวข้อ "Firehose stream name" จะแสดงขึ้นมาด้านล่างอัตโนมัติ)

Firehose stream name
・Firehose stream name: tinnakorn-test-firehose
create_firehose_connect_to_s3-1

ต่อไปหัวข้อ Destination settings
คลิก Browse แล้วเลือก S3 bucket เช่น tinnakorn-test-s3 (เลือก S3 bucket ที่สร้างก่อนหน้านี้)
create_firehose_connect_to_s3-2

แล้วเลื่อนลงมาด้านล่างที่หัวข้อ Buffer hints, compression, file extension and encryption แล้วคลิกเพื่อขยายฟังก์ชันการตั้งค่าต่างๆด้านล่าง โดยครั้งนี้จะตั้งค่า "Buffer interval: 60 seconds" แล้วคลิก Create Firehose stream ที่ด้านล่างสุด
create_firehose_connect_to_s3-3

รอ Create สักครู่ แล้วจะแสดงหน้าจอแบบนี้
create_firehose_connect_to_s3-4

เริ่มทดสอบการใช้งาน

คลิกหัวข้อ Test with demo data เพื่อขยายฟังก์ชันต่างๆด้านล่าง แล้วจะแสดงหน้าจอแบบนี้
โดยในหน้านี้จะประกอบด้วยข้อมูลที่ใช้ในการทดสอบระบบ เช่น สคริปต์ที่ใช้ในการทดสอบก็จะมีลักษณะแบบนี้

{
  "TICKER_SYMBOL": "QXZ",
  "SECTOR": "HEALTHCARE",
  "CHANGE": -0.05,
  "PRICE": 84.51
}

test_firehose_connect_to_s3-1

แล้วคลิก Start sending demo data ปุ่มก็จะเปลี่ยนเป็น Sending demo data ก็ให้รอประมาณ 2-3 นาที แล้วข้อมูลจะถูกส่งไปยัง Amazon S3 ซึ่งเป็นการทดสอบระบบการใช้งาน
test_firehose_connect_to_s3-2

หลังจากผ่านไป 2-3 นาที ให้คลิก Stop sending demo data เพื่อหยุดส่งข้อมูลไปยัง S3 ได้เลย
test_firehose_connect_to_s3-3

ต่อไปให้เข้าไปดูใน S3 Bucket ที่เราสร้าง ถ้าระบบทำงานถูกต้องจะมีโฟลเดอร์วันที่และไฟล์อยู่ใน Bucket ซึ่งไฟล์เหล่านี้จะถูกสร้างอัตโนมัติจากการทำงานของ Firehose ตอนที่เราคลิก "Start sending demo data"
test_firehose_connect_to_s3-4

แล้วถ้าเราเข้าไปยังไฟล์ลึกที่สุดก็จะเจอกับข้อมูลที่ระบบ Firehose ส่งมาที่ S3 Bucket นี้ โดยระยะเวลาการส่งนั้นคือทุกๆ 1 นาที ตามที่เราตั้งค่า Buffer interval ในตอนที่สร้าง Amazon Data Firehose ซึ่งจะสังเกตได้จากคอลัมน์ Last modified
ทีนี้ให้ติ๊ก ✅️ แล้วคลิก Download ไฟล์ลงอุปกรณ์ของเรา
test_firehose_connect_to_s3-5

แล้วเปิดไฟล์เพื่อดูข้อมูลที่อยู่ในไฟล์เหล่านี้ ก็จะเห็นฟอร์มข้อมูลที่เหมือนกันกับโค้ดในหัวข้อ Test with demo data ก่อนหน้านี้
test_firehose_connect_to_s3-6

เมื่อถึงส่วนนี้ก็เป็นการจบในส่วนของการทดสอบระบบแล้ว ถ้าเราทำตามขั้นตอนและมีผลลัพธ์ตรงกับบทความนี้ แสดงว่าตอนนี้เราสามารถใช้งาน Firehose ร่วมกับ S3 ได้แล้ว

ลบ Resource

หากเราไม่ต้องการใช้งานแล้วก็ควรจะลบ Resource เพื่อประหยัดค่าใช้จ่ายโดยดูวิธีการลบในหัวข้อนี้ได้เลย

  • Amazon Data Firehose
    • Firehose stream
  • Identity and Access Management (IAM)
    • Roles
  • Amazon S3
    • Buckets

ลบ Firehose stream ใน Amazon Data Firehose

เข้ามาที่หน้าจอบริการ "Amazon Data Firehose > Firehose streams" ของเรา แล้วคลิก Delete Firehose stream แล้วยืนยันการลบตามคำแนะนำ
delete_firehose_connect_to_s3-1_firehose

ลบ Role ใน Identity and Access Management (IAM)

เข้ามาที่หน้าจอบริการ "Identity and Access Management (IAM) > Roles" ของเรา เนื่องจาก IAM Role นี้ถูกสร้างโดยอัตโนมัติในขณะที่สร้าง Firehose stream โดยจะมีชื่อว่า KinesisFirehoseServiceRole-xxxxxx-ap-southeast-1-xxxxxx
แล้วคลิก Delete แล้วยืนยันการลบตามคำแนะนำ
delete_firehose_connect_to_s3-2_iam

ลบ Bucket ใน Amazon S3

เข้ามาที่หน้าจอบริการ "Amazon S3 > Buckets" แล้วค้นหาและติ๊ก Bucket ของเรา แล้วคลิก Empty
delete_firehose_connect_to_s3-3_s3_1

แล้วป้อน permanently delete ตามคำแนะนำ และคลิก Empty (หากมีข้อมูลเหลืออยู่ใน Bucket จะไม่สามารถลบได้)
delete_firehose_connect_to_s3-3_s3_2

เมื่อดำเนินการ Empty เสร็จแล้ว ให้ติ๊ก Bucket ของเราอีกครั้ง แล้วคลิก Delete
delete_firehose_connect_to_s3-3_s3_3

แล้วยืนยันการลบโดยป้อนชื่อ Bucket ของเราตามคำแนะนำ แล้วคลิก Delete
delete_firehose_connect_to_s3-3_s3_4

เพียงเท่านี้ก็จบการสาธิตการใช้งาน Firehose ร่วมกับ S3 แล้วครับ

สรุป

สำหรับเนื้อหาในบทความนี้ ผมหวังเป็นอย่างยิ่งว่าจะมีประโยชน์ต่อผู้ที่สนใจและอยากศึกษาเกี่ยวกับการใช้งาน Firehose และ S3 นะครับ แล้วพบกันใหม่ในบทความต่อๆ ไปครับ

บทความที่เกี่ยวข้อง

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.